To correctly synchronize the components within components within components,
all subclasses of CS whose CS.L(java.awt.Component) works, must obey these rules:

NOTE: 9/2007 the default java.awt.Component for a CS is a JTree of code and does not obey these rules
and therefore does not update correctly. This should be fixed.

(rule1) L(java.awt.Component) must always return the same Component, even if countP() < minP().

(rule2) setP(int,CS), if it is meant to affect the Component, must update the SAME component,
and not cause L(java.awt.Component) to return a different Component.
	EXCEPTION TO (2): Updating the Component may be delayed less than 1 second,
		and multiple waiting updates can be combined.

(rule3) If the Component is meant to ever change,
D() (and all other EXECUTE functions) must cause it to update.


I AM NOT SURE ABOUT THIS LAST RULE, BECAUSE THE DESIGN OF WindowCS CONTRADICTS IT.
CALLING D() ON A WindowCS CAUSES IT TO DISPLAY ITS Component (a Window).

(possibleRule4) If D() (or other EXECUTE function) is called before L(java.awt.Component),
then D() (or other...) must not cause a Component to be created or be displayed for the first time.
This may be a hard contradiction to resolve...